package sys

import (
	"github.com/gofiber/fiber/v2"
	"go-web2/app/common/config"
	"go-web2/app/model/sys"
)

type DeptController struct{}

// 部门树列表
func (DeptController) GetList(c *fiber.Ctx) error {
	dept := sys.SysDept{}
	dept.Token = c.Get(config.TokenHeader)
	return c.Status(200).JSON(config.Success(dept.GetListTree()))
}

// 根据id获取部门
func (DeptController) GetById(c *fiber.Ctx) error {
	dept := sys.SysDept{}
	dept.Id = c.Params("id")
	dept.Token = c.Get(config.TokenHeader)
	err := dept.GetById()
	if err != nil {
		return c.Status(200).JSON(config.Error(err.Error()))
	}
	return c.Status(200).JSON(config.Success(dept))
}

// 新增部门
func (DeptController) Insert(c *fiber.Ctx) error {
	var dept sys.SysDept
	if err := c.BodyParser(&dept); err != nil {
		//log.Error(err.Error())
		return c.Status(200).JSON(config.Error(err.Error()))
	}
	dept.Token = c.Get(config.TokenHeader)
	err := dept.Insert()
	if err != nil {
		return c.Status(200).JSON(config.Error(err.Error()))
	}
	return c.Status(200).JSON(config.Success(nil))
}

// 修改部门
func (DeptController) Update(c *fiber.Ctx) error {
	var dept sys.SysDept
	if err := c.BodyParser(&dept); err != nil {
		//log.Error(err.Error())
		return c.Status(200).JSON(config.Error(err.Error()))
	}
	dept.Token = c.Get(config.TokenHeader)
	err := dept.Update()
	if err != nil {
		return c.Status(200).JSON(config.Error(err.Error()))
	}
	return c.Status(200).JSON(config.Success(nil))
}

// 删除部门
func (DeptController) Delete(c *fiber.Ctx) error {
	var dept sys.SysDept
	dept.Id = c.Params("id")
	dept.Token = c.Get(config.TokenHeader)
	if err := dept.Delete(); err != nil {
		return c.Status(200).JSON(config.Error(err.Error()))
	}
	return c.Status(200).JSON(config.Success(nil))
}

// 部门下拉树列表
func (DeptController) GetSelectList(c *fiber.Ctx) error {
	dept := sys.SysDept{}
	dept.Token = c.Get(config.TokenHeader)
	return c.Status(200).JSON(config.Success(dept.GetListTree()))
}
